home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d3 / dbmail.arc / ML0010.PRG < prev    next >
Text File  |  1988-06-18  |  4KB  |  141 lines

  1. NOTE ML0010 - UPDATE CODES FIELD    7/10/84
  2. NOTE        CODES STORED IN VARIABLE    VAR  AND RETURNED IN THAT FIELD
  3. NOTE        OFSET    IS STARTING LINE LOCATION ON SCREEN FOR DISPLAY
  4. NOTE        MAX    IS MAXIMUM CHARACTERS ALLOWED IN CODE FIELD
  5. NOTE        DELIM    IS DELIMITER TO SEPARATE CODES. INVALID IN CODE FIELD
  6.  
  7. SET TALK OFF
  8.  
  9. CLEAR GETS
  10. STORE 2    TO CC
  11. STORE 0    TO V
  12. STORE LEN(VAR)    TO L
  13. STORE @(DELIM, VAR)    TO N
  14. STORE N>0    TO OK
  15.  
  16. DO WHILE OK.AND.V<19
  17. STORE L-N    TO L
  18. STORE L>0    TO OK
  19. IF OK
  20.     STORE $(VAR,N+1,L)    TO VAR
  21.     STORE @(DELIM, VAR)    TO N
  22.     STORE N>0    TO OK
  23.     ENDIF
  24. IF OK .AND. N>1
  25.     STORE V+1    TO V
  26.     STORE STR(V,1+INT(V/10) ) TO VC
  27.     STORE $(VAR,1,N-1)    TO CD&VC
  28.     STORE LEN(CD&VC)    TO L&VC
  29.     STORE CC+L&VC +1    TO CC
  30.     ENDIF
  31. ENDDO
  32.  
  33. STORE 0    TO L,M,N
  34. DO ML0015
  35.  
  36. @ 19,0
  37. @ 20,0
  38. @ 21,0
  39. @ 21,0 SAY '-----  INDICATOR(****) MOVEMENT AND FIELD UPDATE CODES  ------  Char. Remain    '
  40. @ 22,0 SAY '        M  Modify Indicated Code     D  Delete Code      A  Add Code     E  Exit'
  41. @ 23,0 SAY ' Move Indicator  B  Backward 1 Field     <anything else>  Forward 1 Field      '
  42.  
  43. STORE T    TO OK
  44. STORE 0    TO N
  45. STORE V>0    TO VI
  46. IF VI
  47.     STORE CC-1    TO CC
  48.     ENDIF
  49.  
  50. DO WHILE OK
  51. IF VI
  52.     STORE N+1    TO N
  53.     IF N>V
  54.         STORE 1    TO N
  55.         ENDIF
  56.     STORE STR(N,1+INT(N/10) ) TO VC
  57.     STORE $('**********',1,L&VC)    TO VAR
  58.     @ OFSET+LI&VC,M&VC+1 SAY VAR
  59.     ENDIF {v>0}
  60. @ 21,77 SAY MAX-CC USING '999'
  61. SET COLON OFF
  62. SET BELL OFF
  63. @ 22,1 SAY '    '
  64. STORE ' '    TO R
  65. @ 22,2 GET R PICTURE '!'
  66. READ
  67. @ 22,1 SAY 'wait'
  68. SET COLON ON
  69. SET BELL ON
  70. IF VI
  71.     STORE $('          ',1,L&VC)    TO VAR
  72.     @ OFSET+LI&VC,M&VC+1 SAY VAR
  73.     ENDIF
  74.  
  75. DO CASE
  76. CASE R='B'.AND.VI
  77.     IF N<2
  78.         STORE V-1    TO N
  79.     ELSE
  80.         STORE N-2    TO N
  81.         ENDIF
  82. CASE R='E'
  83.     STORE F    TO OK
  84.  
  85. CASE R='D'.AND.VI
  86.     STORE CC-L&VC -1    TO CC
  87.     STORE M&VC    TO M
  88.     STORE LI&VC -1    TO L
  89.     STORE N    TO HN
  90.     DO WHILE N<V
  91.     STORE N+1    TO N
  92.     STORE STR(N,1+INT(N/10) ) TO R
  93.     STORE CD&R    TO CD&VC
  94.     STORE L&R    TO L&VC
  95.     STORE LI&R    TO LI&VC
  96.     STORE M&R    TO M&VC
  97.     STORE R    TO VC
  98.     ENDDO
  99.     STORE STR(V,1+INT(V/10) ) TO VC
  100.     @ OFSET+LI&VC-1, M&VC
  101.     RELEASE CD&VC,L&VC,LI&VC,M&VC
  102.     STORE V-1    TO V
  103.     IF HN>V
  104.         STORE V    TO N
  105.     ELSE
  106.         STORE HN-1    TO N,HN
  107.         DO ML0015
  108.         STORE HN    TO N
  109.         ENDIF
  110.     STORE V>0    TO VI
  111.     IF .NOT.VI
  112.         STORE 2    TO CC
  113.         ENDIF
  114. CASE R='M'.AND.VI
  115.     STORE STR(N,1+INT(N/10) ) TO VC
  116.     STORE $(CD&VC + '                                                                              ',1,78)    TO VAR
  117.     DO ML0011
  118.  
  119. CASE R='A'
  120.     STORE '                                                                              '    TO VAR
  121.     DO ML0011
  122.  
  123. ENDCASE
  124. ENDDO {ok}
  125.  
  126. STORE DELIM    TO VAR
  127. STORE 0    TO N
  128. DO WHILE N<V
  129. STORE N+1    TO N
  130. STORE STR(N,1+INT(N/10) ) TO VC
  131. STORE VAR+CD&VC +DELIM    TO VAR
  132. RELEASE CD&VC,LI&VC,M&VC,L&VC
  133. ENDDO
  134. IF LEN(VAR)<2
  135.     STORE DELIM+DELIM    TO VAR
  136.     ENDIF
  137. RELEASE CC,V,L,M,N,OK,VC,VI,ML,R,HN,XX
  138. RETURN
  139. L,R,HN,XX
  140. RETURN
  141.